///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (C) 2007-2009 ILOG, S.A.
//  All Rights Reserved.
//  The following is ILOG Source Code.  No modifications may be made to the  
//  ILOG Source Code.  Any usage of the ILOG Source Code is subject to 
//  the terms and conditions of the ILOG End User License Agreement   
//  applicable to this ILOG software product.
//
///////////////////////////////////////////////////////////////////////////////

package ilog.gauges.gaugesClasses
{
  import mx.core.UIComponent;

  /**
   *  Color of the text in the component, including the component label.
   *
   *  @default 0x0B333C
   */
  [Style(name="color", type="uint", format="Color", inherit="yes")]
  
  /**
   *  Color of the text in the component if it is disabled.
   *
   *  @default 0xAAB3B3
   */
  [Style(name="disabledColor", type="uint", format="Color", inherit="yes")]
  
  /**
   *  Sets the <code>antiAliasType</code> property of internal TextFields. The possible values are 
   *  <code>"normal"</code> (<code>flash.text.AntiAliasType.NORMAL</code>) 
   *  and <code>"advanced"</code> (<code>flash.text.AntiAliasType.ADVANCED</code>). 
   *  
   *  <p>The default value is <code>"advanced"</code>, which enables the FlashType renderer if you use an 
   *  embedded FlashType font. Set to <code>"normal"</code> to disable the FlashType renderer.</p>
   *  
   *  <p>This style does not affect system fonts.</p>
   *  
   *  <p>This style applies to the whole text in a TextField subcontrol; 
   *  you cannot apply it to some characters and not others.</p>
  
   *  @default "advanced"
   * 
   *  @see flash.text.TextField
   *  @see flash.text.AntiAliasType
   */
  [Style(name="fontAntiAliasType", type="String", enumeration="normal,advanced", inherit="yes")]
  
  /**
   *  Name of the font to use.
   *  Unlike in a full CSS implementation,
   *  comma-separated lists are not supported.
   *  You can use any font family name.
   *  If you specify a generic font name,
   *  it is converted to an appropriate device font.
   * 
   *  @default "Verdana"
   */
  [Style(name="fontFamily", type="String", inherit="yes")]
  
  /**
   *  Sets the <code>gridFitType</code> property of internal TextFields that represent text in Flex controls.
   *  The possible values are <code>"none"</code> (<code>flash.text.GridFitType.NONE</code>), 
   *  <code>"pixel"</code> (<code>flash.text.GridFitType.PIXEL</code>),
   *  and <code>"subpixel"</code> (<code>flash.text.GridFitType.SUBPIXEL</code>). 
   *  
   *  <p>This property only applies when you use an embedded FlashType font 
   *  and the <code>fontAntiAliasType</code> property 
   *  is set to <code>"advanced"</code>.</p>
   *  
   *  <p>This style does not affect system fonts.</p>
   * 
   *  <p>This style applies to the whole text in a TextField subcontrol; 
   *  you cannot apply it to some characters and not others.</p>
   * 
   *  @default "pixel"
   *  
   *  @see flash.text.TextField
   *  @see flash.text.GridFitType
   */
  [Style(name="fontGridFitType", type="String", enumeration="none,pixel,subpixel", inherit="yes")]
  
  /**
   *  Sets the <code>sharpness</code> property of internal TextFields that represent text in Flex controls.
   *  This property specifies the sharpness of the glyph edges. The possible values are Numbers 
   *  from -400 through 400. 
   *  
   *  <p>This property only applies when you use an embedded FlashType font 
   *  and the <code>fontAntiAliasType</code> property 
   *  is set to <code>"advanced"</code>.</p>
   *  
   *  <p>This style does not affect system fonts.</p>
   * 
   *  <p>This style applies to the whole text in a TextField subcontrol; 
   *  you cannot apply it to some characters and not others.</p>
   *  
   *  @default 0
   *  
   *  @see flash.text.TextField
   */
  [Style(name="fontSharpness", type="Number", inherit="yes")]
  
  /**
   *  Height of the text, in pixels.
   *  @default 10
   */
  [Style(name="fontSize", type="Number", format="Length", inherit="yes")]
  
  /**
   *  Determines whether the text is in the italic font.
   *  Allowed values are <code>"normal"</code> and <code>"italic"</code>.
   * 
   *  @default "normal"
   */
  [Style(name="fontStyle", type="String", enumeration="normal,italic", inherit="yes")]
  
  /**
   *  Sets the <code>thickness</code> property of internal TextFields that represent text in Flex controls.
   *  This property specifies the thickness of the glyph edges.
   *  The possible values are Numbers from -200 to 200. 
   *  
   *  <p>This property only applies when you use an embedded FlashType font 
   *  and the <code>fontAntiAliasType</code> property 
   *  is set to <code>"advanced"</code>.</p>
   *  
   *  <p>This style does not affect system fonts.</p>
   * 
   *  <p>This style applies to the whole text in a TextField subcontrol; 
   *  you cannot apply it to some characters and not others.</p>
   *  
   *  @default 0
   *  
   *  @see flash.text.TextField
   */
  [Style(name="fontThickness", type="Number", inherit="yes")]
  
  /**
   *  Determines whether the text is in boldface.
   *  Allowed values are <code>"normal"</code> and <code>"bold"</code>.
   *  For Button controls, the default is <code>"bold"</code>.
   * 
   *  @default "normal"
   */
  [Style(name="fontWeight", type="String", enumeration="normal,bold", inherit="yes")]
  
  /**
   *  A Boolean value that indicates whether kerning
   *  is enabled (<code>true</code>) or disabled (<code>false</code>).
   *  Kerning adjusts the gap between certain character pairs
   *  to improve the readability. It should be used only when necessary,
   *  for example, with headings in large fonts.
   *  Kerning is supported for embedded FlashType fonts only. 
   *  Some fonts, like Verdana and monospaced fonts (for example,
   *  Courier New), do not support kerning.
   *
   *  @default false
   */
  [Style(name="kerning", type="Boolean", inherit="yes")]
  
  /**
   *  The number of additional pixels to display between each character.
   *  A positive value increases the character spacing beyond the normal spacing,
   *  while a negative value decreases it.
   * 
   *  @default 0
   */
  [Style(name="letterSpacing", type="Number", inherit="yes")]
  
  /**
   *  Alignment of text within a container.
   *  Possible values are <code>"left"</code>, <code>"right"</code>,
   *  or <code>"center"</code>.
   * 
   *  <p>The default value for most controls is <code>left</code>.
   *  For the Button, LinkButton, and AccordionHeader components,
   *  the default value is <code>"center"</code>.
   *  For these components, this property is only recognized when the
   *  <code>labelPlacement</code> property is set to <code>"left"</code> or
   *  <code>"right"</code>.
   *  If <code>labelPlacement</code> is set to <code>"top"</code> or
   *  <code>"bottom"</code>, the text and any icon are centered.</p>
   */
  [Style(name="textAlign", type="String", enumeration="left,center,right", inherit="yes")]  
  
  /**
   *  Offset, in pixels, of the first line of text from the left side of the container.
   * 
   *  @default 0
   */
  [Style(name="textIndent", type="Number", format="Length", inherit="yes")]
  
  /**
   * The base class of ILOG Elixir gauges visual elements. It allows mainly
   * specificy the font style properties that will be used by all subclasses
   * like <code>fontSize</code> or <code>fontFamily</code>
   * 
   * @see ilog.gauges.gaugesClasses.circular.CircularGaugeElement
   * @see ilog.gauges.gaugesClasses.rectangular.RectangularGaugeElement
   */
  public class GaugeElement extends UIComponent
  {
    /**
     * Constructor
     */
    public function GaugeElement():void
    {
      super();
    }
    
    /**
     * @private
     */
    protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
      super.updateDisplayList(unscaledWidth, unscaledHeight);
    }
  }
}
